// 从data-source中导入AppDataSource,这是TypeORM的数据库连接
import { AppDataSource } from './data-source';
// 从entity中导入Link实体类
import { Link } from './entity/Link';

// 调用AppDataSource.initialize()初始化连接
// AppDataSource.initialize()
//   .then(async () => {
//     console.log('在link表中插入数据')
//     // 创建Link实例,设置name和url属性
//     const link = new Link()
//     link.name = '牛马程序员'
//     link.url = 'https://itniuma.com'
//     // 使用AppDataSource.manager获取EntityManager类
//     // 使用EntityManager的save方法插入这条Link记录
//     await AppDataSource.manager.save(link)
//     // save方法会返回插入数据的id
//     console.log('添加了一条新数据，id是: ' + link.id)
//   })
//   .catch((error) => console.log(error))

// AppDataSource.initialize()
//   .then(async () => {
//     console.log('在link表中插入数据')

//     await AppDataSource.manager.save(Link, [
//       { name: '螺钉课堂1', url: 'https://nodeing.com' },
//       { name: '僰课学城1', url: 'https://bokecity.com' },
//       { name: '螺钉课堂2', url: 'https://nodeing.com' },
//       { name: '僰课学城2', url: 'https://bokecity.com' }
//     ])
//   })
//   .catch((error) => console.log(error))

// AppDataSource.initialize()
//   .then(async () => {
//     console.log('在link表中插入数据')
//     const link = new Link()
//     // 指定要修改的是id为1的这条数据
//     link.id = 1
//     link.name = '牛马程序员'
//     // 把url地址改了
//     link.url = 'https://nodeing.com'

//     await AppDataSource.manager.save(link)
//     console.log('更新了一条新数据，id是: ' + link.id)
//   })
//   .catch((error) => console.log(error))

// AppDataSource.initialize()
//   .then(async () => {
//     console.log('在link表中查询数据')
//     // 查询数据
//     const result = await AppDataSource.manager.find(Link)
//     console.log(result)
//     // 或者下面这种写法
//     // const result = await AppDataSource.manager.getRepository(Link).find()
//     console.log(result)
//   })
//   .catch((error) => console.log(error))

AppDataSource.initialize()
  .then(async () => {
    console.log('在link表中删除数据')
    // 删除id为5的这条数据
    const result = await AppDataSource.manager.delete(Link, 5)
    console.log(result)
  })
  .catch((error) => console.log(error))